package com.haiya.template.basic;

/**
 * 抽象模板方法类
 * - 模板方法 templateMethod()
 * - 特定方法 specificMethod()
 *   抽象出来的共性方法、回调方法等
 * - 抽象方法: 差异性实现方法，交由具体实现类实现
 *   - abstractMethod1()
 *   - abstractMethod2()
 */
public abstract class AbstractClass {

    public void templateMethod() {
        System.out.println("模板方法执行 ~~~~");
        specificMethod();
        abstractMethod1();
        abstractMethod2();
    }

    public void specificMethod() {
        System.out.println("特定方法执行 ~~~~");
    }

    public abstract void abstractMethod1();

    public abstract void abstractMethod2();
}
